home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 002 / maxref.arc / MAX-REF.DOC < prev    next >
Text File  |  1986-04-05  |  50KB  |  1,198 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.                                    MAX
  15.  
  16.                              REFERENCE MANUAL
  17.  
  18.                            PRELIMINARY VERSION
  19.  
  20.                                 Ivo Welch
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.                           NEW YORK, SCHWEINFURT
  38.  
  39.                                8 April 1985
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.                        Copyright (C) 1985  I. Welch
  51.  
  52.   1. An Example
  53.     Here  is an example how to use MAX.  It is only at this point in the
  54.   documentation, so that you can satisfy  your  initial  curiousity  and
  55.   play-drive.  If you are not yet burning to try out everything, but you
  56.   would rather learn something while playing, run  the  Tutorial  (  see
  57.   section  TUTORIAL.    )  instead.    Do  not be disturbed if you don't
  58.   understand everything that is going on.  Just follow the  instructions
  59.   and look at the action on the screen.
  60.  
  61.     You  type everything that is in bold-face. Explanations are provided
  62.   in  Italics.  CTL-F  means:  hold  down  the  CTRL   key   and   press
  63.   simultaneously  the F key; ESC-F means:  first press the ESC key, then
  64.   press the F key.
  65.  
  66.     You start this example by typing MAX  \MAX\DOC\MAX.HLP  at  the  DOS
  67.   prompt.
  68.  
  69.     A>MAX \MAX\DOC\MAX.HLP
  70.  
  71.     You  have just asked MAX to edit its own HELP file ( which can be in
  72.   the connected or in the \max\doc directory ).  You will not  only  see
  73.   normal  characters,  but a few control-characters interspersed in your
  74.   file, recognizable by a light ^ followed by another character.
  75.  
  76.     CTL-F CTL-F CTL-F
  77.  
  78.     Now the cursor has moved three characters to the right
  79.  
  80.     CTL-B CTL-B
  81.  
  82.     And it has moved back two characters
  83.  
  84.     CTL-P
  85.  
  86.     You have just made a mistake, trying to  retreat  a  line  when  the
  87.   cursor  was  already  on the first line.  MAX has detected your error,
  88.   and notifies you with a beep and a message that you can see for a  few
  89.   seconds below the modeline.
  90.  
  91.     CTL-N
  92.  
  93.     Now you have advanced one line
  94.  
  95.     CTL-P
  96.  
  97.     Now you can retreat a line, sine you are not on line 1 anymore
  98.  
  99.     CTL-D
  100.  
  101.     You have just deleted a character
  102.  
  103.     CTL-X CTL-B
  104.  
  105.     You  have  asked MAX to allow you to choose a new buffer  ( you want
  106.   to stop changing this document, and start  changing  another  document
  107.   without  loosing  your  changes on the first document ).  MAX displays
  108.   you a small menu of available choices
  109.  
  110.     <RETURN>
  111.  
  112.     You prefer to continue editing  your  original  document.  A  number
  113.   would have chosen a new work place for editing another file.
  114.  
  115.     <CTL-X 2>
  116.  
  117.     You have entered "2 window mode." This allows you to edit your file,
  118.   while looking at another, and switching easily back and forth  between
  119.   editing files
  120.  
  121.     <CTL-X 1>
  122.  
  123.     But you are not too interested at this for now. You would rather get
  124.   some help. Hold all of the following three  keys:  <SHIFT  <CTRL>  and
  125.   Underline "_">
  126.  
  127.     CTL-_
  128.  
  129.     You  are  now  looking at the help menu. If you want, hit "1" to get
  130.   menu item 1. Then you want to get out of the HELP menu,  so  you  type
  131.   the universal abort character...
  132.  
  133.     CTL-G
  134.  
  135.     You  are  tired  and  decide to stop this for the time being, so you
  136.   decide to exit
  137.  
  138.     CTL-X CTL-Z CTL-Y
  139.  
  140.     Now you have  seen  how  to  interact  with  this  strange  computer
  141.   program.  Your curiosity will now have to be satisfied now by learning
  142.   systematically useful commands.
  143.  
  144.  
  145.  
  146.   1. How to get started
  147.  
  148.   1.1. Backing up the Diskette
  149.     You can back up MAX just like you would back up any other diskette:
  150.  
  151.     Run the program named DISKCOPY from your DOS diskette,  then  insert
  152.   MAX  into  one  drive  and  a  blank diskette into the other, and tell
  153.   DISKCOPY that  you  wish  to  copy  from  MAX's  drive  to  the  blank
  154.   diskette's  drive.  Make sure to always keep a backup copy of MAX in a
  155.   safe place for your own rotection against program errors, your errors,
  156.   or simply magnetic media wearout.
  157.  
  158.   1.2. The Use of this Manual
  159.     This  manual  serves  not  only two programs, but also two purposes.
  160.   Purpose One is to tell you how to go about learning  how  to  use  all
  161.   these  new  things:    the  editor, the manual, the documentation etc.
  162.   Purpose Two is to serve you as a reference manual,  to  allow  you  to
  163.   explore new commands and to look up forgotten commands.
  164.  
  165.     Hence,  you  will  find  a  logical  gap  in this manual. You should
  166.   overcome it by playing and experimenting with MAX on-line.  A built-in
  167.   help facility should help you to overcome problems on-line.
  168.  
  169.     As  a  final  note,  if you have acess to EMACS  (MIT), or any EMACS
  170.   clone (like Epsilon [trademark of Lugaro Software] or MINCE [trademark
  171.   of Mark of the Unicorn]), you may also find many valuable hints how to
  172.   use EMACS-style  editors in general.
  173.  
  174.  
  175.  
  176.   2. Learning how to use the Editor
  177.  
  178.   2.1. The Keyboard
  179.     MAX's  allows  you  to  use   two   different   kinds   of   inputs:
  180.   Menu/Functionkey Input, and Direct Sequences Input.
  181.  
  182.  
  183.  
  184.   2.1.1. Menus and Functionkeys
  185.     Menu-style  has  the advantage of being trivial to learn and trivial
  186.   to use, but it depends heavily on the computer that you  are  using  -
  187.   and  on MAX itself.  Other  EMACS-like editors will not have this menu
  188.   system. Furthermore, menus force you to go through several menu's even
  189.   if  you  already  know what you want to do. Therefore it usually takes
  190.   more time to edit with menus than with control-functions.
  191.  
  192.     MAX uses IBM's non-alphanumeric keys to allow you to input commands.
  193.   Some  of the keys, like Home or Arrows always do what you would expect
  194.   them to do, namely moving the cursor to another location.   Try  these
  195.   keys ( they are on the numeric keypad ).
  196.  
  197.     The  functionkeys  on  the left side of the main keyboard can change
  198.   meaning.  The last line on the screen displays the actual function  of
  199.   the  functionkeys at any moment, and a brief description of which menu
  200.   is currently active.  You can switch  from  one  menu  to  another  by
  201.   hitting  the appropriate functionkey. A new menu will appear prompting
  202.   you for different options.  F10 in the original menu will turn off the
  203.   last  line  (but  still allow you to see the name of the menu).  Using
  204.   menus is so trivial, that talking about it will only add complications
  205.   - try them out.
  206.  
  207.  
  208.  
  209.   2.1.2. Keystroke Sequence Input
  210.     Control-style  has the advantage that once you know one EMACS clone,
  211.   you can use all others.  You will also be able to work  faster,  since
  212.   you  command  the  editor  directly, and don't have to go through many
  213.   menus over and over again.  I strongly recommend  learning  and  using
  214.   this method.
  215.  
  216.     Every function that your editor can perform for you corrosponds to a
  217.   specific keystroke sequence.  You will have to  memorize  them,  which
  218.   may  give  you  some  initial  problems.    Some  of the commands have
  219.   "mnemonic" keystroke sequences:  they shall remind you  of  what  they
  220.   actually  do.    For  instance,  CTL-F moves the cursor Forward, CTL-B
  221.   moves it Backwards.  Unfortunately, since EMACS  has grown slowly over
  222.   time,  many  keystroke  sequences  are  just  convention,  and bear no
  223.   relationship to their actual meaning.
  224.  
  225.     There are essentially two types of keystroke sequences: Control  and
  226.   Escape  Sequences.    The  main  difference  is that control sequences
  227.   require you to hold down the control key and at the same time pressing
  228.   another key ( denotated as CTL-*, where * is the name of the other key
  229.   ), while Escape Sequences require you  to  first  press  <ESCAPE>  and
  230.   after that another key ( denotated as ESC-* ).
  231.  
  232.     You  can  look  up  the  keystroke  sequence of any function, or the
  233.   function of any keystroke sequence either  on-line  in  your  editor's
  234.   help menu, or in this manual.
  235.  
  236.   2.2. HELP and QUIT
  237.     There are two functions that you should always remember:
  238.  
  239.     CTL-_,  that  is  holding  down  simultaneously  <SHIFT>, <CTRL> and
  240.   <UNDERLINE> ( _ ), will enter the HELP menu.  Here you can choose what
  241.   you need to know.
  242.  
  243.     CTL-G  will  quit  whatever  you are doing and whereever you are. It
  244.   will return you to the basic editing mode (  from  which  you  can  of
  245.   course get help, exit etc ).
  246.  
  247.     Always remember these special functions !
  248.  
  249.   2.3. The Tutorial
  250.     The  time  has come to start the tutorial.  Type A>MAX TUTORIAL.HLP,
  251.   carefully read every page, and follow the instructions.
  252.  
  253.     If you get confused, or you think you  have  done  something  wrong,
  254.   type CTL-X CTL-Z CTL-Y and start all over again.
  255.  
  256.     Once  you have finished with the tutorial, you should be able to use
  257.   MAX without any problems for your most basic needs.    Work  with  the
  258.   commands  you  know at this point for about a week (until you remember
  259.   the  basic  keystroke  sequences  without  looking  at  any  reference
  260.   anymore).
  261.  
  262.     Once  you know all the basic functions by heart, strive through this
  263.   manual, try out new commands, and see what they do. Preferably do this
  264.   only  on  files that you don't really need, since playing with unknown
  265.   commands gives  you  a  good  chance  of  erasing  or  modifying  work
  266.   accidentally.
  267.  
  268.  
  269.  
  270.   3. MAX Command Reference
  271.  
  272.   3.1. Modes
  273.  
  274.  
  275.  
  276.   3.1.1. Subject Modes
  277.  
  278.  
  279.   3.1.1.1. TEXT Mode
  280.     This is the default mode.  All Text Mode means is that TAB stops are
  281.   set every 8 characters, and that hitting TAB will simply place you  at
  282.   the next such stop.
  283.  
  284.  
  285.   3.1.1.2. Wrap Mode
  286.     Wrap  Mode  can  be toggled with ESC-X W. When you are in Wrap mode,
  287.   and you press <CR>, starting a new line, MAX will  automatically  fill
  288.   the paragraph for you.   This is useful when you want to type a lot of
  289.   text without even looking at the screen, and  worrying  about  hitting
  290.   <CR> at the right time.  When you finish your paragraph, you just type
  291.   one <CR>, and MAX will put in all the  necessary  line-breaks  in  the
  292.   previous paragraph.
  293.  
  294.  
  295.   3.1.1.3. Planned or Possible Modes
  296.     There are presently no other modes available. FORTRAN, BASIC, PASCAL
  297.   and SCRIPT mode are in planning stage, other modes may follow as well.
  298.   Hitting  <TAB>  in  any of these modes will indent automatically, i.e.
  299.   MAX will move your cursor where your language dictates it should be.
  300.  
  301.  
  302.  
  303.   3.1.2. Function Modes
  304.  
  305.  
  306.   3.1.2.1. Auto Save Mode
  307.     Auto Save Mode will save your work after every 400 typed characters.
  308.   It is not yet implemented.
  309.  
  310.  
  311.   3.1.2.2. Insert v Overstrike Mode
  312.     Insert  Mode is the default mode. New characters will be inserted at
  313.   the cursor position; everything behind the  cursor  position  will  be
  314.   shifted  to  the  right.   Similarly, hitting a <CR> will insert a new
  315.   line, and shift all other lines down.    Insert  Mode  allows  quicker
  316.   editing  than Overstrike mode, but requires a (short) time to get used
  317.   to.
  318.  
  319.     Overstrike Mode works like an ordinary  typewriter.  New  characters
  320.   will replace ( overstrike ) the old characters.  The advantage is that
  321.   typists who are only used to typewriters, will already know how to use
  322.   it.  Overstrike Mode is not yet implemented.
  323.  
  324.  
  325.   3.1.2.3. Keep Mode
  326.     Keep  Mode will force MAX to remember what you were editing when you
  327.   exit. When you reenter MAX, MAX will  look  up  what  it  was  editing
  328.   before,  re-visit  these  files,  and position the cursor where it was
  329.   before.  This can be quite useful if you are working on a big project,
  330.   changing one little part, recompiling, changing again, and so on. Keep
  331.   Mode is not yet implemented.
  332.  
  333.   3.2. Explanation of Commands by Subject
  334.  
  335.  
  336.  
  337.   3.2.1. Using the Built-In Menu
  338.     Please refer to the section on keyboard usage.
  339.  
  340.  
  341.  
  342.   3.2.2. Getting HELP
  343.  
  344.   CTL-_           will enter the built-in on-line HELP menu.   A  number
  345.                   (not  a  function  key!)    will  select another node,
  346.                   delete  will  retreat  to  the  last  node,  <ESCAPE>,
  347.                   <SPACE>  or  <CTL-G>  will  abort  the  HELP menu, and
  348.                   return to your work.  If CTL-_ doesn't work, try CTL-G
  349.                   CTL-_.  If this doesn't work, start praying.
  350.  
  351.  
  352.  
  353.   3.2.3. Aborting with QUIT
  354.  
  355.   CTL-G           will  abort  any  function  and return you to the main
  356.                   editing mode.  You can then ask  for  help,  exit  the
  357.                   editor, etc.
  358.  
  359.  
  360.  
  361.   3.2.4. Moving the cursor
  362.     MAX  offers  cursor  movements  by  character, line, word, sentence,
  363.   paragraph, page, screen and file.
  364.  
  365.   Character       CTL-F
  366.                   will   advance   the  cursor  to  the  next  character
  367.                   (Forward).  If you are at  the  end  of  a  line,  the
  368.                   cursor will move to the start of the next line. If you
  369.                   are at the end of the file, CTL-F will cause an error.
  370.  
  371.                   CTL-B
  372.                   will  retreat  by one character (Backward). If you are
  373.                   at the start of a line,the cursor  will  move  to  the
  374.                   last character of the previous line. If you are at the
  375.                   start of the file, CTL-B will cause an error.
  376.  
  377.   Line            CTL-N
  378.                   will  move  the  cursor  to the next line (Down).  MAX
  379.                   will to move the cursor to the same column.    If  the
  380.                   next line is shorter than the old line, MAX will place
  381.                   the cursor at the end of  this  line.    If  you  type
  382.                   directly  afterwards  another CTL-N ( or  CTL-P ), MAX
  383.                   will try to move to the original  column  (where  your
  384.                   first   CTL-N   or  CTL-P  started).    If  you  don't
  385.                   understand this, move the cursor to  the  end  of  the
  386.                   second-longest  line  in  your  text,  and  type a few
  387.                   CTL-N.
  388.                   Typing CTL-N on the last line generates an error.
  389.  
  390.                   CTL-P
  391.                   will  move the cursor to the previous line (Up).  Like
  392.                   CTL-N, MAX will go to the  same  column  on  the  next
  393.                   line,  or  any  line  thereafter.  Typing CTL-P on the
  394.                   first line will generate an error.
  395.  
  396.   Word            ESC-B
  397.                   will  move  the  cursor  to  the start of the previous
  398.                   word. A word starts after a <SPACE>, or on a new line,
  399.                   with a non-<SPACE> character.  ESC-B on the first word
  400.                   of the file generates an error.
  401.  
  402.                   ESC-F
  403.                   will  move  the cursor to the start of the next word1.
  404.                   ESC-F on the last word of a file is illegal.
  405.  
  406.   Paragraph       ESC-]
  407.                   will  move  the  cursor  to  the  start  of  the  next
  408.                   paragraph.  A paragraph is text that begins  after  an
  409.                   empty  line.    ESC-[  in  the  first  paragraph  will
  410.                   generate an error.  NOT IMPLEMENTED: USE  CTL-R  CTL-Q
  411.                   CTL-M CTL-Q.
  412.  
  413.                   ESC-[
  414.                   will move the cursor to  the  start  of  the  previous
  415.                   paragraph.   ESC-[ at the last paragraph will generate
  416.                   an error.  NOT IMPLEMENTED:  USE   CTL-S  CTL-Q  CTL-M
  417.                   CTL-Q CTL-J.
  418.  
  419.   Page             CTL-X ]
  420.                   will move the cursor to the previous ^L in  the  text.
  421.                   NOT IMPLEMENTED:  USE  CTL-R CTL-Q CTL-L.
  422.  
  423.                   CTL-X [
  424.                   will move the cursor to the next ^L in the text.   NOT
  425.                   IMPLEMENTED: USE  CTL-S CTL-Q CTL-L.
  426.  
  427.   Screen          CTL-V
  428.                   will move the cursor to the start of the next  screen,
  429.                   and  update  to  a new screen.  If you are less than a
  430.                   screenful away from the end of the  file,  ESC-V  will
  431.                   generate an error.
  432.  
  433.                   ESC-V
  434.                   will move the cursor to  the  start  of  the  previous
  435.                   screen,  and  update to a new screen.  If you are less
  436.                   than a screenful away from the start of  the  file,  a
  437.                   warning message will be displayed.
  438.  
  439.   File            ESC->
  440.                   will move the cursor to the end of your file.
  441.  
  442.                   ESC-<
  443.                   will move the cursor to the start of your file.
  444.  
  445.                   CTL-L
  446.                   will redraw the screen with a  centered  cursor.    An
  447.                   argument  to  CTL-L  allows to specify on which screen
  448.                   line the cursor should appear  on.    CTL-L  does  not
  449.                   really  move  the  cursor, but it allows you to see it
  450.                   from a "different angle."
  451.  
  452.   Others          CTL-X CTL-X
  453.                   will  exchange  cursor  and  mark.  The cursor will be
  454.                   moved to the position where your mark  was,  the  mark
  455.                   will  be  moved to the old cursor position. This comes
  456.                   in very handy to check the boundaries of your region.
  457.  
  458.  
  459.  
  460.   3.2.5. Deleting, Killing, Moving Text
  461.     There are two different ways of erasing text.  Deleting will  simply
  462.   throw  away text.  Killing will save the erased text in the  Yank-Back
  463.   Buffer , and allow you to put it back into your file at any  location.
  464.   In  MAX,  killing  allows you to delete, move or copy lines, words, or
  465.   even blocks of text. The idea is always the same:  you  kill  some  of
  466.   your  text,  and yank it back elsewhere.  To erase text, simply do not
  467.   use  CTL-Y; to move text, go to the place where you want to move  your
  468.   text  to,  and  use  CTL-Y;  to copy text to new location(s), do CTL-Y
  469.   directly after your CTL-K  to  place  the  killed  text  back  to  its
  470.   original  place.    Now  you  have  a copy of the text to copy in your
  471.   yankback buffer.  Move your cursor to the new  location(s),  and  type
  472.   CTL-Y again.  Voi-la.
  473.  
  474.     Since  there  is  only  one  yank-back  buffer,  be careful with new
  475.   killing.   Doing  another  kill  will  probably  erase  your  previous
  476.   yank-back buffer, loosing whatever you killed before. There will be no
  477.   way to regain the old killed text.   In  some  future  version,  there
  478.   might be more than one buffer, but for the time being you will have to
  479.   live with one.
  480.  
  481.   CTL-D           will delete the character at the cursor position.   It
  482.                   can  also  be  used to delete empty lines, or to merge
  483.                   two consecutive lines. CTL-D is illegal at the end  of
  484.                   the file.
  485.  
  486.   CTL-H           (Backspace)  will rubout the last character, i.e.  the
  487.                   character directly before the cursor position.    This
  488.                   is  useful  for  correcting  text  "on  the run," like
  489.                   typos.  CTL-H is essentially the same as CTL-B  CTL-D.
  490.                   <BACKSPACE>, as CTL-H is often called, on the start of
  491.                   the file is illegal.   Note  that  CTL-H  assumes  the
  492.                   function of EMACS' <DEL>.
  493.  
  494.   All  of  the following functions will kill text, i.e. place the erased
  495.                   text into the yankback buffer.
  496.  
  497.   ESC-D           will kill the word to the right.  ESC-D at the end  of
  498.                   the file is illegal.
  499.  
  500.   ESC-BS          will  kill  the word to the left.  ESC-BS at the start
  501.                   of the file is illegal.
  502.  
  503.   CTL-W           will  kill  the  region.    The  region   is   defined
  504.                   dynamically  as  all  text  between the cursor and the
  505.                   mark.  (Marks can be  set  with  CTL-@.)        Region
  506.                   commands  are  used  to  delete,  move  or copy entire
  507.                   blocks of text.  It is recommended that you use  CTL-X
  508.                   CTL-X  to  check  the static boundaries of your region
  509.                   before actually using CTL-W.   This  is  because  both
  510.                   mark   and  cursor  change  continuously  during  your
  511.                   editing session while you insert or delete text.
  512.  
  513.   CTL-K           will kill everything from the cursor to the end of the
  514.                   line.    If you are on an empty line, the line will be
  515.                   closed.   CTL-K is the most  widely  used  command  to
  516.                   quickly  kill or move text.    CTL-K is exceptional in
  517.                   so far, as directly  consecutive  (and  only  directly
  518.                   consecutive)  CTL-Ks  do  not  replace the text in the
  519.                   yank-back buffer, but add to it.
  520.  
  521.   ESC-K           allows adding text via CTL-K to the yank buffer  after
  522.                   you have issued some commands other than CTL-K ( which
  523.                   usually means your yank-back buffer is closed ).
  524.  
  525.   CTL-Y           will yank back the last killed object  at  the  cursor
  526.                   position.    You  can  yank-back the same object a few
  527.                   times, creating multiple copies of  text  at  multiple
  528.                   places.
  529.  
  530.  
  531.  
  532.   3.2.6. Searching and/or Replacing Text
  533.     MAX's  search  is  incremental, i.e.  text is already searched while
  534.   you are entering your search string or commands.  Among  the  commands
  535.   are  the  options  to  search  for  control-characters, to reverse the
  536.   search direction, or to include a wildcard character.  The  search  is
  537.   always not case-sensitive !
  538.  
  539.   CTL-S           will search for a string while you enter it.
  540.  
  541.   CTL-R           will search backward ( reverse ).
  542.  
  543.   Subcommands     CTL-Q
  544.                   will quote a character.   This  allows  searching  for
  545.                   control  characters  in  your text ( e.g.  CTL-Q CTL-L
  546.                   will look for a ^L in your document ).
  547.  
  548.                   CTL-G
  549.                   will  abort  the  search  (NOT IMPLEMENTED:  and place
  550.                   your cursor where you started your search ).
  551.  
  552.                   CTL-S
  553.                   If  you  are  searching in reverse direction, a  CTL-S
  554.                   will change the search direction.  If you just started
  555.                   a  search  with  CTL-S,  another CTL-S will search for
  556.                   nother occurance of the same string.
  557.  
  558.                   CTL-R
  559.                   Analogous to CTL-S, but reverse.
  560.  
  561.                   CTL-J
  562.                   will match  any  character  (  wildcard  ).        For
  563.                   instance,  CTL-S  A  CTL-J  B will find AAB, ABB, ACB,
  564.                   etc.
  565.  
  566.                   Other commands will abort the search,  and  interprete
  567.                   the  command  as  a normal MAX command.  A good way to
  568.                   end a search is CTL-L, which will abort the search and
  569.                   simply redraw the screen.
  570.  
  571.                   ESC-X S
  572.                   "Search and Replace"  will search for  all  occurences
  573.                   of  string 1 after the cursor position, and replace it
  574.                   with  string  2.   Note   that   string   1   is   not
  575.                   case-sensitive,  so  all  occurances  of  string 1, no
  576.                   matter  whether  in  lower  or  uppercase,   will   be
  577.                   replaced.  ESC-X S will first prompt you for string 1,
  578.                   which may contain CTL-Js ( the wildcard  character  ).
  579.                   Then  it  will  prompt you for string 2.  This command
  580.                   may take some time, so please be patient.
  581.  
  582.                   ESC-X Q
  583.                   "Query  Search  and  Replace,"  similar to "Search and
  584.                   Replace," but asks for confirmation at each occurrence
  585.                   of  string 1.  Hitting <SPACE>  will substitute string
  586.                   2, <DEL>  will skip the substitution, and  CTL-G  will
  587.                   abort.
  588.  
  589.  
  590.  
  591.   3.2.7. Using Macros
  592.     Macros  are  a  powerful  way to customize your editor, and to avoid
  593.   entering common keystroke sequences repeatedly.
  594.   CTL-X (         will start the macro definition.  Every character  you
  595.                   type  hereafter  will  be  recorded until you stop the
  596.                   definition,  or  cause  an  error,  or  overflow   the
  597.                   macro-buffer  (  255  characters  ).    Note  that DEF
  598.                   appears on the modeline, reminding you  that  you  are
  599.                   defining a macro.
  600.  
  601.   CTL-X )         will  stop  the  macro  definition.    The  DEF on the
  602.                   modeline will disappear, and you can now  invoke  your
  603.                   macro.
  604.  
  605.   CTL-X E         will invoke the macro.  Every character that you typed
  606.                   during the definition will be "played back,"  just  as
  607.                   if  you  typed it.  When MAX detects an error, it will
  608.                   automatically stop the macroinvocation. For  instance,
  609.                   if  you  are  at  the  second to last character in the
  610.                   file, and your macro does CTL-K CTL-D HELLO, MAX would
  611.                   detect  an error executing CTL-D, and abort the macro,
  612.                   never actually inserting HELLO.
  613.  
  614.                   A powerful feature of MAX  are  arguments  to  macros.
  615.                   For  example,  you  could  give  simulate  search  and
  616.                   replace by defining a macro that  will  search  for  a
  617.                   string,  then  rubout  the string, and insert another.
  618.                   Finally you could invoke this macro  with    CTL-50000
  619.                   CTL-X   E.  MAX  replaces  until  there  are  no  more
  620.                   occurrences, or until it reaches 50,000  replacements.
  621.                   Some  macro  invocations  can  take quite long.  CTL-G
  622.                   will interrupt macroexecutions.
  623.  
  624.  
  625.  
  626.   3.2.8. Using Buffers and Windows
  627.     MAX allows you to edit several files, or multiple copies of the same
  628.   file during one session without exiting or saving to disk.
  629.  
  630.     Each  buffer  holds one file (maximum 64K), just like a pad may have
  631.   several @Faecher.  Only one buffer can be active at a time, i.e.   you
  632.   can  only  edit  the  currently active buffer ( just like you can only
  633.   open one page in your pad ). A good example for using buffers would be
  634.   writing a letter in one document, and the envelope in another.
  635.  
  636.     There is basically only one operation with buffers, namely switching
  637.   to it.   The  new  buffer  will  be  selected  (becomes  active),  the
  638.   previously active buffer becomes passive.
  639.  
  640.   CTL-X B         will  display  a menu of available buffers, and prompt
  641.                   you for the new buffer.  MAX expects a  number  within
  642.                   the range of available buffers, and will activate this
  643.                   buffer.  CTL-G aborts the selection.
  644.  
  645.   CTL-X CTL-B     will switch to the buffer that was active  immediately
  646.                   before   the   currently  active  buffer.    It  is  a
  647.                   convenient way to quickly toggle between two buffers.
  648.  
  649.     Each buffer can hold a file with up to 64KB of  text.      When  you
  650.   start  MAX,  MAX  will  load  buffers  with  their  default files, and
  651.   activate buffer 1.  Presently, WORK.TXT  is default in buffer 1 and 2;
  652.   other buffers do not load default files.
  653.  
  654.     A  window  is  the place on the screen that your buffer is displayed
  655.   on.  Sometimes it is  convenient  to  see  one  buffer,  while  really
  656.   working on another. This is called split editing. Think of a window as
  657.   reminders in a pad that allow you to really see two @Faecher (buffers)
  658.   at the same time. You can have two windows, each of which can hold its
  659.   own index[Buffers], or the  same  buffer.  You  can  arrange  them  as
  660.   follows:
  661.  
  662.    /-------------\         /-------------\         /-------------\
  663.   |               |       |               |       | Window 1      |
  664.   |  Window 1     |       | Window 2      |       |---------------|
  665.   |               |       |               |       | Window 2 |
  666.    \-------------/         \-------------/         \-------------/
  667.  
  668.  
  669.     Apparently  you could also toggle buffers to achieve the same result
  670.   as the two first figures.  The real interesting gain from  buffers  is
  671.   sketched  in figure three: Your cursor is in one of those windows, and
  672.   editing just as normal, but uses only half  the  screen.    The  other
  673.   window remains statically unchanged, allowing you to look at it.
  674.  
  675.     You  want  to  be  able  to switch the cursor from one window to the
  676.   other, to split up the screen into two windows,  and  to  go  back  to
  677.   one-window mode.
  678.  
  679.   CTL-X 1         will  toggle the number of windows concurrently on the
  680.                   screen ( one or two ).
  681.  
  682.   CTL-X 2         identical with CTL-X 1.
  683.  
  684.   CTL-X O         will toggle active and passive window. The cursor will
  685.                   move  into  the  new active window.  If this window is
  686.                   not on the screen, the previous window will  disappear
  687.                   and the new window will overlay the old window.
  688.  
  689.  
  690.  
  691.   3.2.9. Saving, Loading and Exiting
  692.  
  693.   CTL-X CTL-S     saves  the contents of the active index[Buffers] under
  694.                   its  old  name  to  disk,   and   marks   the   buffer
  695.                   "unmodified."  An unmodified buffer does not display a
  696.                   "*" ("dirty") as the first character on the  modeline.
  697.  
  698.   CTL-X CTL-W     allows the contents of the active index[Buffers] to be
  699.                   written to a new file on  disk,  thus  preserving  the
  700.                   contents  of  the  old file.  The new name becomes the
  701.                   default for all further CTL-X CTL-S. CTL-X CTL-W  will
  702.                   prompt  you  for the new filename ( Escape recognition
  703.                   will work!  ).
  704.  
  705.   CTL-X CTL-V     will visit a file from disk in the current buffer.  It
  706.                   will  prompt  you  for  the name of a file. If no such
  707.                   file exists, only the name  is  noted  (  for  further
  708.                   CTL-X  CTL-S  ).  In this case, a "[NEW FILE]" message
  709.                   will appear on the screen.   If the file  exists,  you
  710.                   can attempt to use <ESC> to complete unique filenames,
  711.                   but only if these files are in the currently connected
  712.                   directory.    If there is more than one file available
  713.                   to match the input up  to  this  point,  a  beep  will
  714.                   sound.    If there is no such file at all, CTL-X CTL-V
  715.                   will abort.  If only one such file exists, the rest of
  716.                   the name will be filled in at the promptline.  You can
  717.                   now press <RETURN> to load this  file.    CTL-X  CTL-V
  718.                   will  return an error if the file is longer than 63K (
  719.                   which virtually no normally  used  file  will  exceed.
  720.                   Longer applications are usually realized with separate
  721.                   compilations or similar facilities. The 64K  limit  is
  722.                   enforced  to  use  the  8088s'  power  to  the largest
  723.                   possible extent ).
  724.  
  725.   CTL-X CTL-Z     will exit to DOS after additional confirmation ( CTL-Y
  726.                   ).
  727.  
  728.  
  729.  
  730.   3.2.10. Using other built-in functions
  731.     Following  is  a  listing  of  commands  which  have  not  yet  been
  732.   discussed, some of which can not be found in the standard DEC-20 EMACS
  733.   implementation.
  734.  
  735.   CTL-X D         will  prompt for a directory mask, and display the DOS
  736.                   directory of files on the disk.
  737.  
  738.   CTL-Z           will scroll the screen up by one line.
  739.  
  740.   ESC-Z           will scroll down the screen by one line. This and  the
  741.                   above   function   can  be  conveniently  accessed  by
  742.                   CTL-PgUP and CTL-PgDn.
  743.  
  744.   ESC-Q           will fill the paragraph, which means it will break all
  745.                   lines  in  the current paragraph which are longer than
  746.                   the fillcolumn, s.t.  they are as long  as  permitted.
  747.                   Lines  that  are  short  enough to hold more words are
  748.                   merged with the next line. Words will never be  broken
  749.                   up.
  750.  
  751.   CTL-X F         allows  setting  the  fill  column  using an argument.
  752.                   ESC-70 CTL-X F will set the maximum length of  a  line
  753.                   on a fill to 70.
  754.  
  755.   ESC-U             will uppercase the previous word ( i.e.  convert all
  756.                   its characters to uppercase ).
  757.  
  758.   ESC-C            will capitalize the previous work ( i.e.  convert the
  759.                   first letter to uppercase, and all others to lowercase
  760.                   ).
  761.  
  762.   Arguments       Most functions accept arguments. An  argument  usually
  763.                   means  that  a command is repeated n times. To give an
  764.                   argument, use  <ESC>-n  or  CTL-U  n  (  the  two  are
  765.                   equivalent  )  where  n  is  a number, and then simply
  766.                   issue the command. For example, CTL-U  10  CTL-N  will
  767.                   move down 10 lines.
  768.  
  769.                   Some  functions  interpret  arguments differently. Two
  770.                   commands come to mind: CTL-L, CTL-Q and  CTL-X  F.  An
  771.                   argument  to CTL-L will center the cursor on line n on
  772.                   the screen; an argument to CTL-Q  will  allow  you  to
  773.                   insert  n  controlcharacters  without  typing CTL-q in
  774.                   front of each; an argument to CTL-X  F  will  set  the
  775.                   fillcolumn.
  776.  
  777.   CTL-X CTL-_     will  create  a  cross-reference  of a valid help-file
  778.                   which is in the active buffer , and dump it  into  the
  779.                   previous  buffer.   Please note that MAX will crash if
  780.                   you attempt to  run  this  function  without  a  valid
  781.                   help-file  !  In  particular, make sure that nodenames
  782.                   are properly terminated.
  783.  
  784.  
  785.  
  786.   3.2.11. Explanation of Commands by Keystroke
  787.     Please refer to the index.
  788.  
  789.   3.3. Some Differrences of MAX and EMACS
  790.  
  791.   Default Files:  On startup, MAX will attempt to  load  the  first  two
  792.                   files which are specified at the DOS command line into
  793.                   buffers #1 and #2. If no file was specified, MAX  will
  794.                   load  the  file  WORK.TXT into the first two buffers .
  795.                   Buffers #3 to #7 will always be initialized to  (  but
  796.                   not loaded with ) the filename FOO.BAR.
  797.  
  798.   Messages:       After loading, MAX will display the number of buffers,
  799.                   the space free for holding killed text,(The number  of
  800.                   buffers   and  the  free  space  for  killed  text  is
  801.                   determined by all free memory above the program) and a
  802.                   message indicating whether it could load a file.  Note
  803.                   that for two new files in buffers 1 and 2  you  should
  804.                   get  two  [NEW  FILE] messages.  Loading one file into
  805.                   one buffer , but none into the other will  still  give
  806.                   you one initial [NEW FILE] message.
  807.  
  808.   Mark:           On  startup,  MAX  will  set  the  mark  on  the first
  809.                   character of the file.
  810.  
  811.   Exit:           Since forks are not kept ( or in UNIX  terms:    "pids
  812.                   are  not stopped" ), MAX asks for confirmation (CTL-Y)
  813.                   before exiting to DOS.
  814.  
  815.   Escape Recognition:
  816.                   Hitting <ESC> when MAX prompts you for a filename will
  817.                   force MAX to attempt completing it. Note that this can
  818.                   only  be done if the filename is unique, and never for
  819.                   a directory-name !
  820.  
  821.   Find File:      Find File is unfortunately not yet implemented.
  822.  
  823.   Buffer Space:   Buffer Space is restricted to 64K.
  824.  
  825.   Buffer Switching:
  826.                   CTL-X  B  will prompt a menu of available buffers, and
  827.                   allow you to choose one by typing  a  number.    CTL-X
  828.                   CTL-B  will  switch previous and current buffer in the
  829.                   current window.
  830.  
  831.   Windows:        Only two windows are permitted.   C-X  1  or  CTL-X  2
  832.                   toggles windows.
  833.  
  834.   Lastline:       MAX  offers  both EMACS-like  commands and menu-entry.
  835.                   The menu system will  appear  on  the  bottom  of  the
  836.                   screen.      Pressing  the  key  will  result  in  the
  837.                   corresponding action being taken.  By  my  convention,
  838.                   choices  leading  to other menus are uppercased, while
  839.                   editor commands are lowercased.     Modeline:
  840.                   The modeline constantly updates date and time.
  841.  
  842.   Messages        Messages  generally  stay  on  the screen for about 15
  843.                   seconds ( unless new messages appear ). Error messages
  844.                   are usually in reverse video.
  845.  
  846.  
  847.  
  848.   Help:           The  help  menu  is  actually  a finite state language
  849.                   interpreter.  The file MAX.HLP ( which must be  either
  850.                   in  the  connected  directory  or  in  \MAX\DOC  )  is
  851.                   interpreted as a menu, and action can be taken by  the
  852.                   user   to   slide   down   the   graph.     Nodes  are
  853.                   diskaddresses, and  therefore  one  has  to  carefully
  854.                   adjust new diskaddresses after modifying the help menu
  855.                   ( use MAX to do so !  ).  There is a built-in function
  856.                   (   CTL-X   CTL-_  )  which  will  calculate  the  new
  857.                   diskaddresses of all nodes, and report it to the other
  858.                   buffer  (  but may crash the editor upon syntactically
  859.                   invalid help files ).  This function  makes  modifying
  860.                   the  help  menu considerably easier.  MAX searches for
  861.                   its help file first in  the  connected  directory  and
  862.                   then  in  \MAX\DOC.  MAX does not expect functionkeys,
  863.                   but numbers  as  choices!  DEL  will  retreat  to  the
  864.                   previous   node,  ESC,  SPACE  or  CTL-G  will  abort.
  865.                   Please refer to the section on Help  in  this  manual.
  866.  
  867.   Macros:         The  execution  of  a  macro will not turn off display
  868.                   updating.   One  can  see  the  macro  working.    The
  869.                   advantage  is  that one can simply stop a macro with a
  870.                   long argument at any chosen time  using  CTL-G.    The
  871.                   disadvantage is a 2% loss of speed.
  872.  
  873.   Search & Replace:
  874.                   Search and Replace is invoked by ESC-X S, Query Search
  875.                   and  Replace  by  ESC-X Q.  Please refer to the proper
  876.                   section of this manual.
  877.  
  878.   Fill:           Fill will not take an argument to justify.
  879.  
  880.   Scrolling:      CTL-Z and ESC-Z will scroll the display one line up or
  881.                   down.
  882.  
  883.  
  884.  
  885.  
  886.   Bugs:           Some  minor  bugs  have  appeared, none of them fatal.
  887.                   Most  disappear  from  the  screen  immediately  after
  888.                   simple and obvious corrective action is taken.
  889.  
  890.     MAX, Copyright (C) Ivo Welch, Jan. 1985.
  891.  
  892.  
  893.  
  894.   4. Advanced Topics
  895.  
  896.   4.1. How to modify the Editor Help Menu
  897.  
  898.   4.2. About the Internal Structure of the Editor
  899.  
  900.  
  901.  
  902.   4.2.1. Easy Customization
  903.     Please  look  at DEFS.H to modify certain standard definitions (i.e.
  904.   last-line  displayed  on  power  up,  display  used,  original  macro,
  905.   original file names to be loaded etc.).
  906.  
  907.  
  908.  
  909.   4.2.2. Major Datastructures
  910.     BCB stands for Buffer Control Block, and is located in the first 256
  911.   bytes of each Buffer. Its definition can be found in DEFS.H. Among the
  912.   more  important fields of the BCB is the cursor position, the position
  913.   of the cursor on the screen, the mark, the FCB that allows  saving  or
  914.   loading  the  buffer to disk, etc. As an example, to set the cursor to
  915.   the start of the buffer, use the command:
  916.  
  917.     mov DS:BCB.FCursor, 100h
  918.  
  919.     where DS is the 64K segment that holds our buffer, BCB the structure
  920.   definition, and FCursor the address of the cursor in the field.
  921.  
  922.  
  923.  
  924.   4.2.3. The Function Jump Tables
  925.  
  926.  
  927.  
  928.   4.2.4. The Screen Definition
  929.     Please  fgrep for SCR if you wish to find out points where I have to
  930.   write to the screen.
  931.  
  932.  
  933.  
  934.   4.2.5. The OS interface
  935.  
  936.  
  937.  
  938.   4.2.6. Ading a New Function
  939.  
  940.  
  941.   4.2.6.1. Error Trapping
  942.     If an error should be displayed, DX should be set to the  offset  of
  943.   an  ascii  string,  CX  should  contain its length.  Control should be
  944.   transferred to .Error0,  which  will  reset  stack,  macro  and  other
  945.   pointers   to   their   original  state  at  invocation,  display  the
  946.   errormessage, and sound a beep.
  947.  
  948.  
  949.  
  950.   Index
  951.  
  952.             "*" (to mark modified buffers)   18
  953.  
  954.             64K Limit   12, 13, 15
  955.  
  956.             [NEW FILE]   13, 15
  957.  
  958.             Aborting   3, 6, 8, 11, 12, 13, 14, 16
  959.             Arguments   14
  960.             Arguments to CTL-L   9, 14
  961.             Arguments to CTL-X F   14
  962.             Arguments to Macros   12
  963.  
  964.             BACKSPACE   10
  965.             Blocks   10
  966.             Buffer Space Limit   12, 13, 15
  967.             Buffers   2, 12, 14, 15
  968.             Buffers, Number Of Available Buffers   15
  969.             Buffers, Toggling Buffers, see also CTL-X CTL-B   15
  970.             Bugs   16
  971.  
  972.             Capitalizing a Word   14
  973.             Case Sensitivity   11
  974.             Confirmations   11, 14, 15
  975.             Crashes, because of CTL-X CTL-_   14, 18
  976.             Cross Reference of a Help File   14, 18
  977.             CTL-*   5
  978.             CTL-@   10
  979.             CTL-B   5
  980.             CTL-F   5
  981.             CTL-_   3, 6, 8
  982.             CTL-B   2, 8, 10
  983.             CTL-D   2, 10, 12
  984.             CTL-F   2, 8
  985.             CTL-G   3, 6, 8, 11, 12
  986.             CTL-H   10
  987.             CTL-J   11
  988.             CTL-K   10, 12
  989.             CTL-L   9, 11, 14
  990.             CTL-N   2, 8, 12
  991.             CTL-P   2, 8
  992.             CTL-PgDn   14
  993.             CTL-PgUp   14
  994.             CTL-Q   11
  995.             CTL-R   11
  996.             CTL-R CTL-Q CTL-L   9
  997.             CTL-R CTL-Q CTL-M CTL-Q CTL-J   9
  998.             CTL-S   11
  999.             CTL-S CTL-Q CTL-L   9
  1000.             CTL-S CTL-Q CTL-M CTL-Q CTL-J   9
  1001.             CTL-U   14
  1002.             CTL-V   9
  1003.             CTL-W   10
  1004.             CTL-X (   11
  1005.             CTL-X )   12
  1006.             CTL-X 1   3, 13, 15
  1007.             CTL-X 2   2, 13, 15
  1008.             CTL-X [   9
  1009.             CTL-X ]   9
  1010.             CTL-X B   12, 15
  1011.             CTL-X CTL-_   14, 18
  1012.             CTL-X CTL-B   2, 12, 15
  1013.             CTL-X CTL-D   14
  1014.             CTL-X CTL-F   15
  1015.             CTL-X CTL-S   18
  1016.             CTL-X CTL-V   13
  1017.             CTL-X CTL-W   13
  1018.             CTL-X CTL-X   9, 10
  1019.             CTL-X CTL-Z   3, 6, 14
  1020.             CTL-X D   14
  1021.             CTL-X E   12
  1022.             CTL-X F   14, 16
  1023.             CTL-X O   13
  1024.             CTL-Y   3, 6, 10
  1025.             CTL-Y as Confirmation   14, 15
  1026.             CTL-Z   14, 16
  1027.             Cursor Down   8
  1028.             Cursor End   9
  1029.             Cursor Home   9
  1030.             Cursor Left   8
  1031.             Cursor Right   8
  1032.             Cursor Up   8
  1033.  
  1034.             Date, displayed on the Modeline   15
  1035.             DEF, displayed on the Modeline   12
  1036.             Default Directories   18
  1037.             Default Files   15
  1038.             Defaults   7, 12, 13, 15, 18
  1039.             DEL, to "backspace"   10
  1040.             DEL, to abort HELP   18
  1041.             DEL, to overskip in Query Replace   11
  1042.             Directory   14
  1043.             Dirty, see "Modified"   13
  1044.             Disk, writing to and reading from disk   18
  1045.             Diskaddresses, as used in HELP   18
  1046.             DOS   2, 14, 15, 18
  1047.  
  1048.             EMACS   4, 5, 10, 14, 15
  1049.             EMACS Clones   4, 5
  1050.             Error Messages   2, 12, 15, 17
  1051.             ESC, as used in filename completion   15
  1052.             ESC, as used in HELP   8, 18
  1053.             ESC-*   5
  1054.             ESC-<   9
  1055.             ESC->   9
  1056.             ESC-[   9
  1057.             ESC-]   9
  1058.             ESC-B   8, 9
  1059.             ESC-BS   10
  1060.             ESC-C   14
  1061.             ESC-D   10
  1062.             ESC-DEL   10
  1063.             ESC-F   2, 9
  1064.             ESC-K   10
  1065.             ESC-n<umber>   14
  1066.             ESC-Q   14, 16
  1067.             ESC-U   14
  1068.             ESC-V   9
  1069.             ESC-X Q   11
  1070.             ESC-X Query Search And Replace$   11
  1071.             ESC-X S   11
  1072.             ESC-X Search and Replace$   16
  1073.             ESC-X W   7
  1074.             ESC-Z   14, 16
  1075.             Escape Recognition   13, 15
  1076.  
  1077.             Filenames   13, 15
  1078.             Fill Column   14
  1079.             Fill Mode   7
  1080.             Fill Paragraph   14, 16
  1081.             Find File   15
  1082.             Finite State HELP Language   18
  1083.  
  1084.             HELP   3, 4, 5, 6, 8, 16, 18
  1085.             HELP file   14
  1086.  
  1087.             Indexing a Help File   14
  1088.  
  1089.             Kill Space   15
  1090.             Killing   10
  1091.  
  1092.             Last Line on Screen   5, 8, 15
  1093.             Linebreaking   14
  1094.             Literal Mode   14
  1095.  
  1096.             Macro Buffer   12
  1097.             Macros   12, 16
  1098.             Mark(ing the Region)   10, 15
  1099.             MAX.HLP   18
  1100.             MAX\DOC   18
  1101.             Memory Usage   15
  1102.             Menus   5, 8, 12, 15, 18
  1103.             Messages   2, 9, 12, 13, 15, 17
  1104.             Modeline   15
  1105.             Modified Buffer   18
  1106.  
  1107.             Numbers, as used to select HELP options   18
  1108.  
  1109.             Options, as used in Help   18
  1110.  
  1111.             Paragraph   7, 9, 14
  1112.  
  1113.             Query Search and Replace   11
  1114.             QUIT   3, 6, 8, 11, 12, 13, 14, 16
  1115.  
  1116.             RAM Usage   15
  1117.             Region   10, 15
  1118.  
  1119.             Saving a Buffer to Disk   18
  1120.             Scrolling   14, 16
  1121.             Search and Replace   11, 16
  1122.             Segment Limits, see also 64K Limit   13
  1123.             SPACE, as used in HELP   8, 16, 18
  1124.             SPACE, as used in Query Replace   11
  1125.  
  1126.             Time, displayed on the Modeline   15
  1127.  
  1128.             Uniqueness of Filenames (for Escape Recognition)   15
  1129.             Unmodified Buffer   18
  1130.             Uppercase, as used in Menus   15
  1131.             Uppercasing a Word   14
  1132.  
  1133.             Visiting a File   13
  1134.  
  1135.             Wildcard Character   11
  1136.             Windows, Toggling Windows, see also CTL-X 1 or CTL-X 2   15
  1137.             WORK.TXT   12, 15
  1138.             Writing a Buffer to Disk   13
  1139.  
  1140.             Yank Buffer   9, 10
  1141.  
  1142.  
  1143.  
  1144.    Table of Contents
  1145.      1. An Example                                                     2
  1146.  
  1147.  1. How to get started                                                 4
  1148.  
  1149.      1.1. Backing up the Diskette                                      4
  1150.      1.2. The Use of this Manual                                       4
  1151.  
  1152.  2. Learning how to use the Editor                                     5
  1153.  
  1154.      2.1. The Keyboard                                                 5
  1155.          2.1.1. Menus and Functionkeys                                 5
  1156.          2.1.2. Keystroke Sequence Input                               5
  1157.      2.2. HELP and QUIT                                                6
  1158.      2.3. The Tutorial                                                 6
  1159.  
  1160.  3. MAX Command Reference                                              7
  1161.  
  1162.      3.1. Modes                                                        7
  1163.          3.1.1. Subject Modes                                          7
  1164.              3.1.1.1. TEXT Mode                                        7
  1165.              3.1.1.2. Wrap Mode                                        7
  1166.              3.1.1.3. Planned or Possible Modes                        7
  1167.          3.1.2. Function Modes                                         7
  1168.              3.1.2.1. Auto Save Mode                                   7
  1169.              3.1.2.2. Insert v Overstrike Mode                         7
  1170.              3.1.2.3. Keep Mode                                        7
  1171.      3.2. Explanation of Commands by Subject                           8
  1172.          3.2.1. Using the Built-In Menu                                8
  1173.          3.2.2. Getting HELP                                           8
  1174.          3.2.3. Aborting with QUIT                                     8
  1175.          3.2.4. Moving the cursor                                      8
  1176.          3.2.5. Deleting, Killing, Moving Text                         9
  1177.          3.2.6. Searching and/or Replacing Text                       11
  1178.          3.2.7. Using Macros                                          11
  1179.          3.2.8. Using Buffers and Windows                             12
  1180.          3.2.9. Saving, Loading and Exiting                           13
  1181.          3.2.10. Using other built-in functions                       14
  1182.          3.2.11. Explanation of Commands by Keystroke                 14
  1183.      3.3. Some Differrences of MAX and EMACS                          15
  1184.  
  1185.  4. Advanced Topics                                                   17
  1186.  
  1187.      4.1. How to modify the Editor Help Menu                          17
  1188.      4.2. About the Internal Structure of the Editor                  17
  1189.          4.2.1. Easy Customization                                    17
  1190.          4.2.2. Major Datastructures                                  17
  1191.          4.2.3. The Function Jump Tables                              17
  1192.          4.2.4. The Screen Definition                                 17
  1193.          4.2.5. The OS interface                                      17
  1194.          4.2.6. Ading a New Function                                  17
  1195.              4.2.6.1. Error Trapping                                  17
  1196.  
  1197.  Index                                                                 i
  1198.